package com.ruoyi.flow.mapper;

import com.ruoyi.flow.api.domain.WarmFlowInteractiveType;
import com.ruoyi.flow.vo.FlowHisTaskVo;
import com.ruoyi.flow.vo.FlowTaskVo;
import com.ruoyi.system.api.domain.SysUser;
import com.warm.flow.core.entity.HisTask;
import com.warm.flow.core.entity.Task;
import com.warm.flow.orm.entity.FlowHisTask;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * warm-flow工作流Mapper接口
 *
 * @author ruoyi
 * @date 2024-03-07
 */
public interface WarmFlowMapper {
    /**
     * 分页查询待办任务
     *
     * @param task 条件实体
     */
    List<FlowTaskVo> toDoPage(@Param("task") Task task);

    /**
     * 获取最新的已办任务
     *
     * @param hisTask
     * @return
     */
    List<FlowHisTaskVo> donePage(@Param("hisTask") HisTask hisTask);

    /**
     * 查询历史任务
     *
     * @param hisTask 历史任务
     * @return 实例id关联历史记录
     */
    List<HisTask> selectHisTask(@Param("hisTask") HisTask hisTask);

    /**
     * 查询不等于用户列表
     *
     * @param warmFlowInteractiveType warmFlow其他交互类型请求类
     * @return 用户列表
     */
    List<SysUser> selectNotUserList(@Param("warmFlowInteractiveType") WarmFlowInteractiveType warmFlowInteractiveType);

    /**
     * 查询等于用户列表
     *
     * @param warmFlowInteractiveType warmFlow其他交互类型请求类
     * @return 用户列表
     */
    List<SysUser> selectUserList(@Param("warmFlowInteractiveType") WarmFlowInteractiveType warmFlowInteractiveType);
}
